Numerik

Ingenieurinformatik Teil 2, Sommersemester 2026

David Straub

Numerik – D. Straub

Gliederung

  1. Einführung in Matlab
  2. Arbeiten mit Arrays
  3. Funktionen und Kontrollstrukturen
  4. Analysis
  5. Lineare Algebra
  6. Differentialgleichungen
  7. Einführung in Simulink 👈
Numerik – D. Straub

Einheit 1 – Simulink I
→ Was ist Simulink?
→ Vom Anfangswertproblem (AWP) zum Signalflussplan
→ Simulink-Blöcke, Subsysteme und Parameter

Einheit 2 – Heute
→ DGL 2. Ordnung → mehrere Integratoren
→ Gedämpfte und angeregte Schwingung (Resonanz)
→ Nichtlineare DGL, Solver-Einstellungen, To Workspace

Numerik – D. Straub
Numerik – D. Straub

Federschwinger (2. Ordnung)

mx¨+kx=0,x(0)=x0,  x˙(0)=v0m\ddot{x} + kx = 0, \qquad x(0) = x_0,\; \dot{x}(0) = v_0

Auflösen nach der höchsten Ableitung, dann Substitution y1:=x,  y2:=x˙y_1 := x,\; y_2 := \dot{x}:

y˙1=y2,y˙2=kmy1\dot{y}_1 = y_2, \qquad \dot{y}_2 = -\frac{k}{m}\,y_1

Euler-Schritt – zwei Akkumulationszeilen:

y1,y2y_1,\,y_2-Notation x,x˙x,\,\dot{x}-Notation
Zeile 1 y1,n+1=y1,n+Δty˙1,ny_{1,n+1} = y_{1,n} + \Delta t\cdot\dot{y}_{1,n} xn+1=xn+Δtx˙nx_{n+1} = x_n + \Delta t\cdot\dot{x}_n
Zeile 2 y2,n+1=y2,n+Δty˙2,ny_{2,n+1} = y_{2,n} + \Delta t\cdot\dot{y}_{2,n} x˙n+1=x˙n+Δtx¨n\dot{x}_{n+1} = \dot{x}_n + \Delta t\cdot\ddot{x}_n

Zwei Akkumulationszeilen → zwei Integratoren.

Numerik – D. Straub

Vom Euler-Schritt zum Signalflussplan

Jede Akkumulationszeile un+1=un+Δtu˙nu_{n+1} = u_n + \Delta t \cdot \dot{u}_n wird ein Integrator:

  x¨  dt  x˙  dt  x  \xrightarrow{\;\ddot{x}\;} \boxed{\int dt} \xrightarrow{\;\dot{x}\;} \boxed{\int dt} \xrightarrow{\;x\;}

Die höchste Ableitung x¨=kmx\ddot{x} = -\dfrac{k}{m}\,x schließt die Rückkopplung:

  x¨  dt  x˙  dt  x  ×(k/m)  x¨      \xrightarrow{\;\ddot{x}\;} \boxed{\int dt} \xrightarrow{\;\dot{x}\;} \boxed{\int dt} \xrightarrow{\;x\;} \boxed{\times(-k/m)} \xrightarrow{\;\ddot{x}\;} \;\;\circlearrowleft

Numerik – D. Straub

Vorgehen: DGL nn-ter Ordnung → Signalflussplan

Schritt
1 DGL nach der höchsten Ableitung auflösen
2 nn Integratoren in Reihe zeichnen
3 Ausgänge benennen: y(n1),,y˙,yy^{(n-1)},\,\ldots,\,\dot{y},\,y
4 Rechte Seite als Signalpfad aufbauen
5 Ergebnis zurück in den ersten Integratoreingang; Anfangswerte einstellen
Numerik – D. Straub

Implementieren Sie den harmonischen Oszillator mx¨+kx=0m\ddot{x} + kx = 0 mit m=1m = 1, k=1k = 1, x(0)=1x(0) = 1, x˙(0)=0\dot{x}(0) = 0 in Simulink.

  1. Signalflussplan aufzeichnen (zwei Integratoren, Gain-Block)
  2. Modell in Simulink aufbauen
  3. Anfangswerte an den Integratoren einstellen
  4. x(t)x(t) und x˙(t)\dot{x}(t) mit Scope darstellen (Mux verwenden)
  5. Ergebnis mit der analytischen Lösung x(t)=cos(t)x(t) = \cos(t) vergleichen

Extraaufgabe: kk und mm als Workspace-Variablen definieren.

Numerik – D. Straub

Gedämpfte und angeregte Schwingung

Numerik – D. Straub

Gedämpfte Schwingung (2. Ordnung)

mx¨+dx˙+kx=0m\ddot{x} + d\,\dot{x} + k\,x = 0

Auflösen nach der höchsten Ableitung:

x¨=dmx˙kmx\ddot{x} = -\frac{d}{m}\,\dot{x} - \frac{k}{m}\,x

DGL 2. Ordnung → zwei Integratoren, aber jetzt zwei Signalpfade zurück:

  x¨  dt  x˙  dt  x  \xrightarrow{\;\ddot{x}\;} \boxed{\int dt} \xrightarrow{\;\dot{x}\;} \boxed{\int dt} \xrightarrow{\;x\;}

Rückkopplung von x˙\dot{x} (über d/m-d/m) und von xx (über k/m-k/m) in den Summierer.

Numerik – D. Straub

✍️ Aufgabe: Gedämpfte Schwingung mit Anregung

mx¨+dx˙+kx=F0cos(ωt)m\ddot{x} + d\,\dot{x} + k\,x = F_0\cos(\omega t)

m=1m = 1, d=0,1d = 0{,}1, k=1k = 1, F0=1F_0 = 1, x(0)=0x(0) = 0, x˙(0)=0\dot{x}(0) = 0.

  1. Signalflussplan skizzieren (Sine Wave-Block für die Anregung)
  2. Modell in Simulink aufbauen
  3. Simulieren für ω=0,5\omega = 0{,}5 – wie sieht die Antwort aus?
  4. ω\omega auf die Eigenfrequenz ω0=k/m=1\omega_0 = \sqrt{k/m} = 1 ändern → Resonanz
  5. Alle Parameter als Workspace-Variablen definieren
Numerik – D. Straub

Nichtlineare DGL

Numerik – D. Straub

Bei einer nichtlinearen DGL (z.B. v2v^2-Term) ändert sich am Signalflussplan nichts Grundsätzliches – nur ein zusätzlicher Block wird gebraucht:

Block Funktion
Product multipliziert zwei Eingangssignale: u1u2u_1 \cdot u_2

Um v2v^2 zu berechnen: beide Eingänge des Product-Blocks an dasselbe Signal vv anschließen.

Analytisch unlösbar → numerisch trivial.

Numerik – D. Straub

Beispiel: Bremsvorgang mit Luftwiderstand

Ein Flugzeug bremst nach der Landung. Die Geschwindigkeit v(t)v(t) folgt aus:

v˙=c1vc2v2,v(0)=300kmh\dot{v} = -c_1\,v - c_2\,v^2, \qquad v(0) = 300\,\tfrac{\text{km}}{\text{h}}

c1=0,4s1c_1 = 0{,}4\,\text{s}^{-1} (Reifenreibung), c2=0,004m1c_2 = 0{,}004\,\text{m}^{-1} (Luftwiderstand)

Signalflussplan:

[Sum]  v˙  dt  v    \Big[\text{Sum}\Big]\xrightarrow{\;\dot{v}\;}\boxed{\int dt}\xrightarrow{\;v\;}\;\circlearrowleft

Rückkopplung liefert c1v-c_1 v (Gain) und c2v2-c_2 v^2 (Gain + Product).

Numerik – D. Straub

Implementieren Sie das Bremsmodell v˙=c1vc2v2\dot{v} = -c_1 v - c_2 v^2 in Simulink.

Variante A – nur Elementarblöcke (Sum, Gain, Product, Integrator, Scope):

  • Welche Blöcke werden für v2v^2 benötigt?
  • Anfangswert: v0=300/3,6m/sv_0 = 300/3{,}6\,\text{m/s}

Variante B – Matlab Function Block:

  • function v_dot = f(v) implementieren
  • Wann wird das Flugzeug langsamer als 5m/s5\,\text{m/s}?
Numerik – D. Straub

Solver und Datenexport

Numerik – D. Straub

Solver-Einstellungen

Modeling → Model Settings → Solver

Einstellung Bedeutung
ode45 (variabel) Standard; passt Schrittweite automatisch an
ode4 (fest) Runge-Kutta 4, feste Schrittweite – schnell, vorhersehbar
ode1 (Euler, fest) anschaulich, aber instabil bei großen Schrittweiten
Max Step Size begrenzt die maximale Schrittweite (wichtig für glatte Scope-Kurven)

Demonstration: Federschwinger mit ode1 und großer Schrittweite → Lösung divergiert.
Dasselbe Modell, kleinere Schrittweite → stabil.

Numerik – D. Straub

To Workspace: Ergebnisse exportieren

To Workspace-Block schreibt ein Signal als Matlab-Variable in den Workspace.

% Nach der Simulation im Command Window:
plot(tout, yout)          % tout und yout automatisch angelegt (Out-Block)

Alternativ: Out-Block + Data Import/Export in den Model Settings
tout (Zeitvektor) und yout (Matrix, eine Spalte pro Ausgang) werden automatisch gespeichert.

So lassen sich Simulink-Ergebnisse direkt in Matlab weiterverarbeiten: FFT, Maxima suchen, mit Messdaten vergleichen.

Numerik – D. Straub

✍️ Aufgabe: Ergebnisse exportieren und auswerten

Ergänzen Sie das Federschwinger-Modell:

  1. To Workspace-Block hinzufügen (Signal x(t)x(t), Variable x_sim)
  2. Simulation ausführen
  3. In Matlab: analytische Lösung xana(t)=cos(t)x_\text{ana}(t) = \cos(t) berechnen und zusammen mit x_sim plotten
  4. Maximalen Fehler maxxsimxana\max|x_\text{sim} - x_\text{ana}| berechnen
  5. Schrittweite halbieren – wie ändert sich der Fehler?
Numerik – D. Straub